import request from "@/utils/request";

const BASE_URL = "/api/v1/sysBrands";

const brandApi = {
  getPage(data?: PageQuery) {
    return request<any, PageResult<SysBrandForm[]>>({
      url: `${BASE_URL}/page`,
      method: "get",
      params: data,
    });
  },
  getById(id?: string) {
    return request<any, PageResult<SysBrandForm[]>>({
      url: `${BASE_URL}/${id}/form`,
      method: "get",
    });
  },
  add(data: SysBrandForm) {
    return request({
      url: `${BASE_URL}/add`,
      method: "post",
      data,
    });
  },
  delete(ids: string) {
    return request({
      url: `${BASE_URL}/${ids}`,
      method: "delete",
    });
  },
  update(data: SysBrandForm) {
    return request({
      url: `${BASE_URL}/edit`,
      method: "post",
      data,
    });
  },
};

export default brandApi;

export interface BrandPageQuery extends PageQuery {
  brandCode: string;
  brandCode: string;
}

/**
 * 品牌表单对象
 */
export interface SysBrandForm {
  /** 品牌主键 ID */
  id: number;

  /** 品牌编码，用于唯一标识品牌，可自定义规则生成 */
  brandCode: string;

  /** 品牌名称，如“欧派”“索菲亚”等 */
  brandName: string;

  /** 品牌 logo 图片的存储路径或 URL */
  brandLogo?: string;

  /** 品牌简介，用于描述品牌的历史、定位等信息 */
  brandIntroduction?: string;

  /** 品牌状态，1 - 启用，0 - 禁用 */
  status?: number;

  /** 品牌创建时间（ISO 日期时间格式） */
  createTime?: string;

  /** 创建品牌的用户 ID */
  createBy?: number;

  /** 品牌信息最后更新时间（ISO 日期时间格式） */
  updateTime?: string;

  /** 更新品牌信息的用户 ID */
  updateBy?: number;

  /** 逻辑删除标识，1 - 已删除，0 - 未删除 */
  isDeleted?: number;
  categoryId?: number;
}
/**
 * 品牌
 */
export interface SysBrandVo {
  /** 品牌主键 ID */
  id: number;

  /** 品牌编码，用于唯一标识品牌，可自定义规则生成 */
  brandCode: string;

  /** 品牌名称，如“欧派”“索菲亚”等 */
  brandName: string;

  /** 品牌 logo 图片的存储路径或 URL */
  brandLogo?: string;

  /** 品牌简介，用于描述品牌的历史、定位等信息 */
  brandIntroduction?: string;

  /** 品牌状态，1 - 启用，0 - 禁用 */
  status?: number;

  /** 品牌创建时间（ISO 日期时间格式） */
  createTime?: string;

  /** 创建品牌的用户 ID */
  createBy?: number;

  /** 品牌信息最后更新时间（ISO 日期时间格式） */
  updateTime?: string;

  /** 更新品牌信息的用户 ID */
  updateBy?: number;

  /** 逻辑删除标识，1 - 已删除，0 - 未删除 */
  isDeleted?: number;
}
